Creating Fractals

        There are two methods to initiate a fractal display:  create a new fractal or open a saved fractal.  To create a new fractal, simply select 'New' from the File menu.  Opening a saved fractal is just as easy:  choose Open from the File menu and select the saved file from the standard open dialog box.  These methods are OK for either opening pre-saved fractals or seeing the default fractal, but to get the most out of this program, the user will need (and almost certainly desire) to do more.

Basic Concepts

        Several concepts need to be understood before undertaking the fractal creation process.  Basic concepts include the New Parameters window, image size, and generation speed.  The most important of these ideas is the New Parameters window, which contains information about the fractals that will be created.

        The New Parameters window displays the current function, window size, monitor setting, fractal creation depth, and the palette which will be applied to new fractals.  Many of these values can be modified by different menu options.  The function is the fractal that will be generated when New is selected.  This item can be modified by selecting a fractal from the Function hierarchical sub-menu of the Fractal menu.  The window size determines the image size of the fractal.  The first line is the name corresponding to the Size menu, while the second row contains the image's horizontal and vertical size in pixels.  The Monitor Setting is the color depth of the monitor with the most colors in your system.  Generation depth is the depth at which the image will be created.  This value will be the same as Monitor Setting unless the Use 32-Bit Color preference is set (see the Preferences section).  Finally, Palette is the name of the palette which will be applied to new fractals.

        Changes to items listed in the New Parameters window will be displayed when they are made.  However, these changes must be made with either the Help window or New Parameters window as the front window.  Changes made with other windows in the front apply to those windows individually and have no effect on the "global" parameters.  This is very important.  The global parameters are what control the creation of new parameters while changing parameters with a fractal window as the front window changes the window's "local" parameters.  This permits modification of a currently open fractal without changing parameters of fractals that will be created.  This also works in reverse.  One may change the global parameters for new fractals without modifying currently open fractals.

        The size of a fractal is completely up to the user.  The menu lists several standard image sizes.  A custom size may also be selected.  Information on each of these sizes is located in the Menus section (under the Size menu) and in the Size and Memory section.

        It is also important to choose the speed at which to generate fractals.  First decide whether to generate the fractal in the foreground or background.  Foreground processing is much faster, but only one fractal may be generated at a time.  More importantly, the Macintosh cannot be used for other tasks while processing in this mode.  Background processing offers the advantages of being able to perform other duties while creating fractals.  One may choose from three background speeds: slow, medium and fast.  As expected, slow generates a fractal slowly, providing the most time for other applications, while fast creates a fractal faster but uses more processing power.  In most cases, run in medium or fast mode.  Only operate in slow mode if you are performing other time consuming tasks that require lots of processing power (or if you have a machine without a math coprocessor).

        To stop the fractal creation process for foreground generation, press the command (apple) and period keys simultaneously or if the progress scale is displayed (see Preferences section), press the cancel button.  For the background, press either the command (apple) and period keys simultaneously or select the Stop item from the Fractal menu.  After stopping the generation, one can continue from where the creation process left off by selecting Continue from the Fractal menu.  Selecting Redraw from this menu will clear the current fractal image and start generation over again.

        While the fractal is generating in the background, many options will not be available.  The palette cannot be accessed, a selection cannot be made, parameters cannot be changed, the image size stays fixed, and one may not zoom the image.

Fractal Parameters

        Each fractal has certain parameters associated with them which regulate how the fractal is created.  Select the fractal window whose parameter you want to modify or select either the New Parameters window or Help window to modify the global parameters (for future fractals).  Select the fractal that you wish to modify from the Parameters sub-menu, which resides in the Fractal menu.  If a fractal window is the active window, only the parameters that apply to the window's fractal function may be modified.

        The parameters applicable to Random Walk fractals determine the maximum number of particles to display, how long to wait for contact, and the coloring method for each pixel.  The Maximum Particles item sets the maximum number of pixels to be colorized using the Random Walk algorithm.  A 640 x 480 pixel screen has over 300,000 pixels.  Coloring all of these by the Random Walk method would take months to generate (if at all possible since the method leaves gaps in the fractal).  A good number might be between 1000 and 5000 points.  However, be prepared to wait a while.  Max Iterations sets the number of steps to make before discarding the point.  If the number is too low, the roaming points may never reach other pixels.  If it is too high, time might be wasted while the point wanders in a region with few pixels to impact.  Generally, it is good to err on the large size.  Note:  The default setting is 1000 iterations.  This might be quite low for large walks.

        There are six coloring options for Random Walk fractals:  direction that the point last traveled, direction that the fractal touched, the angle formed by drawing a line from the fractal center to the new pixel, the time that the point was "walking", the distance from the pixel to the fractal center, and the distance between the current point and the last point that CFG placed.  One may select any combination of these coloring schemes.  If more than one method is used, the colors produced by each option are averaged to produce the pixel color.

        Direction that the point last traveled permits up to four colors for a pixel: one for left, right, up, and down.  Similarly, direction that the fractal touched a pixel provides only four colors.

        The angle formed by drawing a line from the fractal center to the new pixel permits many fractal colors and will produce a radial color pattern since the color depends upon the angle.  This coloring method uses floating point numbers to generate the angle and can produce as many colors as can be displayed.

        The time that the point was "walking" produces a color based upon the number of steps required to collide with the point.  This method produces at most Max Iterations colors.

        The two distance coloring methods calculate the distance between two points.  The maximum distance would be the distance between two corners that lie on the same diagonal.  The distance from the pixel to the fractal center method will produce concentric coloring of fractals.

        The Mandelbrot, Julia, and Dragon Parameters Dialog will be referred to as the General Parameters Dialog.  There are two types of data that can be modified in the General Parameters Dialog:  the actual variables or a flag indicating random creation.  The variable text boxes will contain the current parameters.  Modify these to select an exact location to examine.  It is better to leave these to the scaling routines.  The only exact parameters not affected by zoom is the constant (Const for Mandelbrot and Dragon, Center for Julia).  These values should be modified by the user as no other method will alter their contents.

        Setting any of the random checkboxes forces the variable to be randomly generated on the next Redraw.  Since the method generates a random number within a fractal specific range, there is a good chance that the value may be of little aesthetic interest once the fractal is generated.  To help guard against this, select the Limit Extreme item from the special menu before redrawing.  This forces random variable generation within a more confined range.  Note that the random flag is cleared after the fractal is generated to permit zooming.  Otherwise, on a zoom the variable would be generated at random again, effectively throwing the user into an unknown and unwanted location.

Selection

        Any portion of the fractal may be selected by clicking the mouse on the desired start location, holding the mouse button down, and dragging to select a rectangular region.  A selection may be enlarged by holding down the shift button and clicking the mouse button.  The bottom right corner will now be at the location of the mouse.  If you hold down the option button, the selected area will be proportional to the image rectangle.  Color Fractal Generator only supports single rectangular selections.  The menu command Select All will select the entire image.  A selection may not be made on a fractal that is being created.

        Once an area is selected, several actions may be performed on it.  The user may zoom in on the area; invert the color in the region; and cut, copy, paste, or clear the selection.  Zooming is covered in the subsequent section.  Coverage of the Edit functions (cut, copy, paste, and clear) is found in Balloon Help under the Edit menu.

        Inverting the color of a selection will reverse the colors in the area.  The exact inversion method depends on the color environment (see Applying Color for information of the color environment).  If the color is direct color, the data bits of the color information are flipped.  White becomes black, black becomes white, pure red would lose all red information and be a blend of green and blue, etc.  This is a true inversion.  For indexed color, black and white are flipped.  But for other colors, their indexes are swapped.  No new colors are created.  The existing colors are simply moved around in the image.

Zoom

        There are three zoom commands which result in four zoom actions.  None of these commands function on a Random Walk fractal (since there is nothing to zoom in on).  Under the Special menu are the commands Zoom In, Zoom Out, and Zoom.  Zoom In retains the current fractal center, but halves the scales.  This is a 2X zoom.  Zoom out is a 0.5X zoom.  The scales are doubled.  The only limit to the zoom amount is the precision of the machine.

        If a rectangle of the fractal is selected, the Zoom take the selection and stretches it to fit the image size.  The center of the selection becomes the fractal center, while the edges of the selection become the edges of the fractal image.  It is possible that the real and imaginary portions of the image will be scaled by different amounts, since the image aspect ratio is not maintained in the selection.  To scale both real and imaginary data the same amount, hold down the option key when making the selection.  This forces the selection to maintain the image aspect ratio.

        If nothing is selected when Zoom is chosen, a dialog box appears prompting the user for the scaling information.  This dialog box permits precise control of zooming.

        The user may modify the x and y scale separately.  The current value is displayed in text boxes next to the text: "current scale:".  The scaling method for each scale is selected by the two sets of radio controls.  Select percentage if you want to enter the scale by percent, fraction to enter a multiplier, or scale to enter the exact scale value.

        The percentage is how much you want to zoom in.  Entering 200 will zoom in 2X (200%).  The fraction is a multiplier to zoom in.  Entering 2 with a fraction zooms to 2X.  Numbers less than or equal to 0 are invalid.